YES 0.427 H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/empty.hs
H-Termination of the given Haskell-Program with start terms could successfully be proven:



HASKELL
  ↳ BR

mainModule Main
  ((rangeSize :: ((),() ->  Int) :: ((),() ->  Int)

module Main where
  import qualified Prelude



Replaced joker patterns by fresh variables and removed binding patterns.
Binding Reductions:
The bind variable of the following binding Pattern
r@(vv,vw)

is replaced by the following term
(vv,vw)



↳ HASKELL
  ↳ BR
HASKELL
      ↳ COR

mainModule Main
  ((rangeSize :: ((),() ->  Int) :: ((),() ->  Int)

module Main where
  import qualified Prelude



Cond Reductions:
The following Function with conditions
rangeSize (vv,vw)
 | null (range (vv,vw))
 = 0
 | otherwise
 = index (vv,vwvw + 1

is transformed to
rangeSize (vv,vw) = rangeSize2 (vv,vw)

rangeSize1 vv vw True = 0
rangeSize1 vv vw False = rangeSize0 vv vw otherwise

rangeSize0 vv vw True = index (vv,vwvw + 1

rangeSize2 (vv,vw) = rangeSize1 vv vw (null (range (vv,vw)))

The following Function with conditions
undefined 
 | False
 = undefined

is transformed to
undefined  = undefined1

undefined0 True = undefined

undefined1  = undefined0 False



↳ HASKELL
  ↳ BR
    ↳ HASKELL
      ↳ COR
HASKELL
          ↳ NumRed

mainModule Main
  ((rangeSize :: ((),() ->  Int) :: ((),() ->  Int)

module Main where
  import qualified Prelude



Num Reduction: All numbers are transformed to thier corresponding representation with Pos, Neg, Succ and Zero.

↳ HASKELL
  ↳ BR
    ↳ HASKELL
      ↳ COR
        ↳ HASKELL
          ↳ NumRed
HASKELL
              ↳ Narrow

mainModule Main
  (rangeSize :: ((),() ->  Int)

module Main where
  import qualified Prelude



Haskell To QDPs